#ifndef WLC_DILITHIUM_ROUNDING_H_
#define WLC_DILITHIUM_ROUNDING_H_

#include <stdint.h>

#include "config.h"
#include "params.h"


/*============================================================================*/
/* Macro definitions                                                          */
/*============================================================================*/

#define power2round DILITHIUM_NAMESPACE(_power2round)
#define decompose DILITHIUM_NAMESPACE(_decompose)
#define make_hint DILITHIUM_NAMESPACE(_make_hint)
#define use_hint DILITHIUM_NAMESPACE(_use_hint)

/*============================================================================*/
/* Constant definitions                                                       */
/*============================================================================*/

/*============================================================================*/
/* Function definitions                                                        */
/*============================================================================*/

#ifdef __cplusplus
extern "C"
{ /* start of __cplusplus */
#endif

    int32_t power2round(int32_t *a0, int32_t a);

    int32_t decompose(int32_t *a0, int32_t a);

    unsigned int make_hint(int32_t a0, int32_t a1);

    int32_t use_hint(int32_t a, unsigned int hint);

#ifdef __cplusplus
} /* end of __cplusplus */
#endif

#endif /* WLC_DILITHIUM_ROUNDING_H_ */